home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / epistat.arc / BINOMIAL.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-10-18  |  2.0 KB  |  35 lines

  1. 1   REM             BINOMIAL DISTRIBUTION (one-tailed)
  2. 2   REM             Written by Tracy L. Gustafson, M.D.
  3. 3   REM            Round Rock, Texas. Version 2.1, 1982
  4. 5  DEF SEG=&H40
  5. 8  A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20
  6. 10  DEF SEG: SCREEN 0,0: WIDTH 80: COLOR 7,0,1: KEY OFF: CLEAR: DEFINT A-C,N,T,Z
  7. 15  CLS: PRINT TAB(19);"KEY";STRING$(35,205);"CLOSE"
  8. 20  PRINT TAB(19);"OPEN BINOMIAL PROBABILITY DISTRIBUTION OPEN"
  9. 25  PRINT TAB(19);"SCREEN";STRING$(35,205);"LOAD": PRINT
  10. 30  PRINT TAB(8);"The binomial distribution provides a one-tailed exact test":PRINT "applicable when a dichotomous variable has an equal probability of occurring":  PRINT TAB(27);"in each of N trials.": PRINT
  11. 40  PRINT TAB(16);:INPUT "Enter the number of trials (integer) :   ",NT: PRINT
  12. 50  PRINT TAB(11);:INPUT "Enter probability of success on each trial:    ",PS
  13. 60  IF ABS(PS-0.5)>0.5 THEN BEEP: PRINT TAB(7); "(NOTE: Probability should be fraction between 0 and 1)": GOTO 50
  14. 70  PRINT: PRINT TAB(15);:INPUT "Enter the number of successes observed:   ",NO
  15. 80  COLOR 23: PRINT: PRINT: AP=CSRLIN: PRINT TAB(25);"CALCULATING PROBABILITY"
  16. 100  AF=0: CO=NO: IF NO>INT(PS*NT) THEN AF=1: PS=1-PS: CO=NT-NO
  17. 110  QS=1-PS: S=0: F=1: P=EXP(NT*LOG(QS)): LP=LOG(PS): LQ=LOG(QS)
  18. 120  FOR T=1 TO CO: FT=T: FZ=NT-FT: S=FT*LP+FZ*LQ
  19. 130  IF F>1E+35 OR S<-80 THEN F=LOG(F): GOTO 150
  20. 140  F=F*(FZ+1)/FT: P=P+F*EXP(S): NEXT T: GOTO 180
  21. 150  FOR Z=T TO CO: FT=Z: FZ=(NT-FT): S=FT*LP+FZ*LQ: F=F+LOG((FZ+1)/FT)
  22. 160  IF F+S>-86 THEN P=P+EXP(F+S)
  23. 170  NEXT Z
  24. 180  FOR Z=4 TO 1 STEP -1: PLAY "MB ML O=Z; L32 B-GE-": NEXT: PLAY "L6 O1 E-"
  25. 190  LOCATE AP,1: COLOR 0,7: PRINT TAB(8);"The probability of observing ";NO;" or ";
  26. 200  IF AF=1 THEN PRINT "more cases = "; ELSE PRINT "fewer cases = ";
  27. 220  IF P<1E-08 THEN PRINT "< 10 (-8)"; ELSE IF P>0.95 THEN PRINT "> .95"; ELSE PRINT P;
  28. 240  PRINT TAB(79): COLOR 7,0,1: PRINT: PRINT: PRINT
  29. 242  IF NT*PS<10 OR NT*QS<10 OR P>0.05 THEN 250 ELSE P$=".#####"
  30. 244  PRINT TAB(15);"The observed proportion of successes is  ";: PRINT USING P$;NO/NT
  31. 246  PRINT TAB(10);"Confidence limits can be calculated as:  ";: PRINT USING P$;NO/NT;: PRINT " +/- Z*";: PRINT USING P$;SQR(PS*QS/NT)
  32. 250  PRINT: PRINT: PRINT TAB(6);: INPUT "Do you want to perform another binomial calculation? (Y or N)   ",A$
  33. 260  IF A$="y" OR A$="Y" THEN 15
  34. 270  END
  35.